package com.fengmi.service.impl;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.fengmi.dto.PageDTO;
import com.fengmi.entity.MallGoodsBrand;
import com.fengmi.entity.MallGoodsTemplate;
import com.fengmi.mapper.GoodsTemplateMapper;
import com.fengmi.service.GoodsTemplateService;
import com.fengmi.vo.PageResultVO;
import com.fengmi.vo.ResultVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;

import java.util.List;

@Service
public class GoodsTemplateServiceImpl implements GoodsTemplateService {

    @Autowired
    private GoodsTemplateMapper templateMapper;

    @Override
    public ResultVO saveGoodsTemplate(MallGoodsTemplate mallGoodsTemplate) {
        if (mallGoodsTemplate == null) {
            return new ResultVO(false, "参数不合法");
        }
        int i = templateMapper.saveTemplate(mallGoodsTemplate);

        return new ResultVO(i == 1 ? true : false, i == 1 ? "添加模板成功" : "添加模板失败");
    }

    /**
     * 分页条件查询
     *
     * @param pageDTO 条件组合实体类
     */
    @Override
    public PageResultVO<MallGoodsTemplate> selectTemByPage(PageDTO<MallGoodsTemplate> pageDTO) {
        //非空判断
        if (pageDTO == null) {
            return new PageResultVO<>(false, "参数不合法");
        }
        //当前页
        Integer pageNum = pageDTO.getPageNum();
        //每页记录数
        Integer pageSize = pageDTO.getPageSize();
        //进行非空判断
        if (pageNum == null || pageNum <= 0) {
            pageNum = 1;
        }
        if (pageSize == null || pageSize <= 0) {
            pageSize = 5;
        }
        //开始分页
        PageHelper.startPage(pageNum, pageSize);
        //调用mapper层查询
        List<MallGoodsTemplate> templateList = templateMapper.findTemplateByPage(pageDTO.getWhere());
        //分页信息对象创建，放入查询集合
        PageInfo<MallGoodsTemplate> pageInfo = new PageInfo<>(templateList);
        //创建返回对象
        PageResultVO<MallGoodsTemplate> pageResultVO = new PageResultVO<>(true, "查询成功");
        //设置每页数据
        pageResultVO.setData(pageInfo.getList());
        //设置总页数
        pageResultVO.setTotalPage(pageInfo.getPages());
        //设置总记录数
        pageResultVO.setTotalSize(pageInfo.getTotal());

        return pageResultVO;
    }

    @Override
    public ResultVO delOneById(String id) {
        if (StringUtils.isEmpty(id)){
            return new ResultVO(false,"参数不合法");
        }
        int i = templateMapper.delTemplateById(id);

        return new ResultVO(i==1?true:false,i==1?"删除模板信息成功":"删除模板信息失败");
    }

    @Override
    public ResultVO selectOneById(String id) {
        if (StringUtils.isEmpty(id)){
            return new ResultVO(false,"参数不合法");
        }
        MallGoodsTemplate template = templateMapper.findOneById(id);

        if (template == null){
            return new ResultVO(false,"不存在该模板");
        }

        return new ResultVO(true,"success",template);
    }

    @Override
    public ResultVO selectAllTemp() {

        List<MallGoodsTemplate> templateList = templateMapper.findAll();

        return new ResultVO(true,"success",templateList);
    }

    /**
     * 修改模板信息
     * @param mallGoodsTemplate 模板实体对象
     */
    @Override
    public ResultVO updateTemp(MallGoodsTemplate mallGoodsTemplate) {
        if (mallGoodsTemplate == null){
            return new ResultVO(false, "参数不合法");
        }
        int i = templateMapper.updateTemplate(mallGoodsTemplate);
        return new ResultVO(i==1?true:false,i==1?"修改模板信息成功":"修改模板信息失败");
    }
}
